package cn.com.headfree.salary.service;

import java.util.Date;
import java.util.List;
import cn.com.headfree.entity.*;
import cn.com.headfree.entity.isc.User;
import cn.com.headfree.vo.*;

public interface IUserDataInfoService {

	//基本信息
	TEmpBaseInfo getBaseInfoByErpNo(String erpNo);

	//专业技术资格
	List<ProTecInfoVo> getProTecInfoByErpNo(String erpNo,String salaryId,String mouId,String ruleId,int year,String orgId);

	//已提报薪档的专业技术资格
	List<ProTecInfoVo> getProTecInfoByErpNoInSalary(String erpNo, String salaryId, String mouId, String ruleId, int year,String orgId,String businessTypeId);

	/**
	 * 积分管理获取专业技资格
	 * @param erpNo
	 * @param salaryId
	 * @param mouId
	 * @param ruleId
	 * @param start
	 * @param end
	 * @return
	 */
	List<ProTecInfoVo> getProTecInfoByErpNo(String erpNo,String salaryId,String mouId,String ruleId,String start,String end,String orgId);

	//全部专业技术资格
	List<ProTecInfoVo> getAllProTecInfoByErpNo(String erpNo,String salaryId);

	//专业技能等级
	List<SkillLevelInfoVo> getSkillLevelInfoByErpNo(String erpNo,String salaryId,String ruleId,String mouId,int year,String orgId);

	List<SkillLevelInfoVo> getSkillLevelInfoByErpNoInSalary(String erpNo, String salaryId, String mouId, String ruleId, int year,String orgId ,String businessTypeId);

	//专业技能等级，用于积分计算
	List<SkillLevelInfoVo> getSkillLevelInfoByErpNo(String erpNo,String salaryId,String mouId,String ruleId,String start,String end,String orgId);

	//全部专业技能等级
	List<SkillLevelInfoVo> getAllSkillLevelInfoByErpNo(String erpNo,String salaryId);

	//专家人才
	List<ExpertTitleVo> getExpertTitleInfoByErpNo(String erpNo,String salaryId,int year);

	//专家人才
	List<ExpertTitleVo> getExpertTitleInfoByErpNo(String erpNo,String salaryId,String mouldId,String ruleId,int year,String orgId);

	List<ExpertTitleVo> getExpertTitleInfoByErpNoInSalary(String erpNo, String salaryId, String mouldId, String ruleId, int year,String orgId,String businessTypeId);

	//近5年专家人才
	List<ExpertTitleVo> getFiveYearExpertTitleInfoByErpNo(String erpNo,String salaryId,String mouldId,String ruleId,int year,String orgId);

	//全部专家人才
	List<ExpertTitleVo> getAllExpertTitleInfoByErpNo(String erpNo,String salaryId);

	//学术成果
	List<AcadeAchiveVo> getAcadeAchiveInfoByErpNo(String erpNo,String salaryId,int year);

	//学术成果
	List<AcadeAchiveVo> getAcadeAchiveInfoByErpNo(String erpNo,String salaryId,String mouldId,String ruleId,int year,String orgId);

	List<AcadeAchiveVo> getAcadeAchiveInfoByErpNoInSalary(String erpNo, String salaryId, String mouldId, String ruleId, int year,String orgId,String businessTypeId);

	//科技创新管理
	List<TecManInnovVo> getTecManInnovByErpNo(String erpNo, String salaryId,int year);

	//技艺革新
	List<TecInnovInfoVo> getTecInnovInfoByErpNo(String erpNo,String salaryId,int year);

	//个人荣誉
	List<HonorDatasVo> getHonnorInfoByErpNo(String erpNo,String salaryId,int year);

	//工作经历
	List<WorkExpInfoVo> getWorkExpInfoByErpNo(String erpNo,String salaryId);

	//学历
	List<EducateInfoVo> getEducateInfoByErpNo(String erpNo,String salaryId,int year);

	//已经提报薪档的学历信息
	List<EducateInfoVo> getEducateInfoByErpNoInSalary(String erpNo, String salaryId, int year,String businessTypeId);

	/**
	 * 根据时间和ERP员工号获取员工的学历信息
	 * @param erpNo
	 * @param salaryId
	 * @param start
	 * @param end
	 * @return
	 */
	List<EducateInfoVo> getEducateInfoByErpNo(String erpNo, String salaryId, String start, String end);


	/**
	 * 根据erpNo获取该人员所有业务可见的业务Id
	 */
	List<BusinessIdsVo> getBusinessIdByErpNo(String erpNo,String salaryId,int year);

	//专利
	List<PatentInfoVo> getPatentInfoByErpNo(String erpNo,String salaryId,String mouldId,String ruleId,int year,String orgId);

	List<PatentInfoVo> getPatentInfoByErpNoInSalary(String erpNo, String salaryId, String mouldId, String ruleId, int year,String orgId,String businessTypeId);

	//专利
	List<PatentInfoVo> getPatentInfoByErpNo(String erpNo,String salaryId,int year);

	//竞赛考试
	List<ContestInfoVo> getContestInfoByErpNo(String erpNo,String salaryId,int year);


	//上一年度绩效
	List<YearEffectVo> getYearEffectByErpNo(String erpNo,String mouldId,String ruleId,int year,String orgId);

	//上一年度绩效
	List<YearEffectVo> getYearEffectByErpNo(String erpNo,int year);

	//全日制学历信息
	List<EducateInfoVo> getFullTimeEducateInfoByErpNo(String erpNo);

	/**
	 * 获取最高学历
	 */
	List<EducateInfoVo> getEducateInfoHighEducByErpNo(String erpNo);

	List<HonorDatasVo> getHonnorInfoByErpNo(String erpNo, String salaryId, String mouldId, String ruleId,int year,String orgId);

	List<HonorDatasVo> getHonnorInfoByErpNoInSalary(String erpNo, String salaryId, String mouldId, String ruleId, int year,String orgId,String businessTypeId);

	List<ContestInfoVo> getContestInfoByErpNo(String erpNo, String salaryId, String mouldId, String ruleId,int year,String orgId);

	List<ContestInfoVo> getContestInfoByErpNoInSalary(String erpNo, String salaryId, String mouldId, String ruleId, int year,String orgId,String businessTypeId);

	List<TecInnovInfoVo> getTecInnovInfoByErpNo(String erpNo, String salaryId, String mouldId, String ruleId,int year,String orgId);

	List<TecInnovInfoVo> getTecInnovInfoByErpNoInSalary(String erpNo, String salaryId, String mouldId, String ruleId, int year,String orgId,String businessTypeId);

	List<TecManInnovVo> getTecManInnovByErpNo(String erpNo, String salaryId, String mouldId, String ruleId,int year,String orgId);

	public List<TecManInnovVo> getTecManInnovByErpNoInSalary(String erpNo, String salaryId, String mouldId, String ruleId, int year,String orgId,String businessTypeId);


	/**
	 * 获取各个类型专业的积分详情
	 * @param ruleId
	 * @param mouId
	 * @return
	 */
	List<TRuleElementInfo> getTRuleElementInfoByproIdAndMouId(String ruleId,String mouId,String orgId);


	//专业技术资格
	List<ProTecInfoVo> getProTecInfoByErpNo(String erpNo,String salaryId,int year);
	//专业技能等级
	List<SkillLevelInfoVo> getSkillLevelInfoByErpNo(String erpNo,String salaryId,int year);
	//人员流动
	List<TEmployeeMobilityVo> getEmployeeMobilityByErpNo(String erpNo, String salaryId, String t_employee_mobility,
			String ruleId, int year, String baseOrgId);

	List<TEmployeeMobilityVo> getEmployeeMobilityByErpNoInSalary(String erpNo, String salaryId, String mouldId,
																 String ruleId, int year, String baseOrgId,String businessTypeId);
	//技术标准
	List<TecStandardVo> getTecStandardInfoByErpNo(String erpNo,String salaryId,String mouldId,String ruleId,int year,String orgId);

	List<TecStandardVo> getTecStandardInfoByErpNoInSalary(String erpNo,String salaryId,String mouldId,String ruleId,int year,String orgId,String businessTypeId);
}
